<template>
  <router-view />
</template>

<script setup lang="ts">

// import { useUserStore } from "@/stores/use_user_store"
import { onBeforeUnmount } from "vue";
import use查能量 from '@/hooks/查能量';

const {
  查能量,
} = use查能量()

window.ws = new WebSocket('ws://localhost:12111');
ws.onmessage = async function (evt) {
  // console.log(evt);
  let kk = JSON.parse(evt.data);
  // console.log(kk);
  // alert(kk);
  if (!('w3' in kk)) return
  switch (kk.w3) {
    case '查能量':
      const res = await 查能量()
      console.log('app查能量 res👉', res)
      if (res.err) {
        console.log('res.err👉', res.err)
        ws.send(JSON.stringify({
          ui: res
        }));
        return
      }
      else if (res.nengliang > 0) {
        console.log('有试用期能量，放行👉', res.nengliang)
      } else {
        const 权限等级 = kk.权限等级
        console.log('权限等级: ', 权限等级);
        switch (权限等级) {
          case "更上层楼":
            if (!res.更上层楼) {
              ws.send(JSON.stringify({
                "err": "出错了，需要 更上层楼 权限，且无试用期能量"
              }));
              return
            }
            break;
          default:
            if (!res.已充电) {
              ws.send(JSON.stringify({
                "err": "出错了，未充电，且无试用期能量"
              }));
              return
            }
            break;
        }
      }

      // 权限验证通过，把传递过来的sketchup消息转发，以执行
      ws.send(kk.params);

      // if (res.err) {
      // 	console.log('res.err👉', res.err)
      // 	ws.send(JSON.stringify({
      // 		ui: res
      // 	}));
      // } else {
      // 	// 把传递过来的sketchup消息转发，以执行
      // 	ws.send(kk.params);
      // }

      break;
    default:
      break;
  }
};

ws.onopen = function () {
  ws.send(JSON.stringify({
    w3连接状态: 1
  }));
};

ws.onclose = function () {
  console.log(`ws断开了 ing👇`)
  ws.send(JSON.stringify({
    w3连接状态: 'onclose 88'
  }));
};

// 用户关闭页面不会执行
onBeforeUnmount(() => {
  // alert('即将关闭');
  // localStorage.setItem('amtf_exe路径', amtf_exe路径el.value);
  return ws.send(JSON.stringify({
    w3连接状态: 'onBeforeUnmount 88'
  }));

})
// 用户关闭页面执行
window.onbeforeunload = function (ev) {
  // return true;
  alert('即将关闭');
  // localStorage.setItem('amtf_exe路径', amtf_exe路径el.value);
  return ws.send(JSON.stringify({
    w3连接状态: 'window.onbeforeunload 88'
  }));
};
</script>
